SSHエージェントとして 1Password を使うと、GitHub上で Unverified と表示される
1Passwordはパスワードマネージャーであるが、パスワード管理以外にもSSHエージェントとしても使用可能である。1PasswordのSSHエージェント機能の概要は、以下の公式ブログ記事で確認できる。
この記事では、1PasswordをSSHマネージャーとして使う方法については割愛する。t_o_d氏の「Github等で利用するSSH keyの作成及び管理を1Passwordで行う」にその方法が詳しく記載されているので、そちらを参照いただきたい。
コミットにUnverifiedマークが表示されてしまう
.sshディレクトリに鍵を保管する代わりに1Passwordを使用するメリットとしては、t_o_d氏の記事にも書かれているようにセキュリティと管理の容易さにある。しかし、1PasswordのSSHエージェントを利用し始めてから、コミットに対して「Unverified」と表示される問題が発生した。
GitHubでコミットにUnverifiedと表示されるのは、ドキュメントによると「コミットは署名されていますが、署名を検証できませんでした。」の状態のようだ。1Passwordで生成した、または管理しているSSH鍵を、GitHubに適切に登録されていない場合に発生するようだ。
コミットにVerifiedマークをつける
Authentication Key(認証キー)を登録しており、問題なくコミットもできているのに、なぜこのような問題が発生するのか?
解決のカギは、Signing Key(署名キー)にあった。「Verified」とマークするためには、認証キーと署名キーの両方を登録する必要があったようだ。署名キーを登録しないと、コミットの署名の検証ができず「Unverified」とマークされてしまうようだ。署名キーの登録を行うと、Verifiedマークを得られる。
公開鍵をGitHubの[Signing Keys]セクションに登録する際の手順は以下の通りだ。
- 1Passwordに登録しているSSH鍵の公開鍵をコピーする
- 公開鍵をGitHubの[Signing Keys]の方に登録する
これらの手順が完了すると、コミットのステータスが下図のように変わる。
以上で、1PasswordをSSHエージェントとして使用した場合に、コミットがVerifiedとして認識されるようになった。
追伸
余談ではあるが、1Passwordのことをずっと1passwordと書いていた。この記事を書くのにあたりきちんと正式名称を調べたところ「1Password」が正しいことがわかった。